#pragma once


#include <d3d9.h>
#include <d3dx9.h>


#include "Node.h"
#include <APPDefines.h>
//////////////////////////////////////////////////////////////////////////
/// \brief idsjfoijdsif
/// sdifjoijsdfoijdsf
class VKSprite : public VKObject
{
public:
	VKSprite();
	virtual ~VKSprite(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;

};


//////////////////////////////////////////////////////////////////////////
class VKSprite2 : public VKObject
{
public:
	VKSprite2();
	virtual ~VKSprite2(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);

	void SetPos(D3DXVECTOR3 vecPos , D3DXVECTOR2 vecSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;

	D3DXMATRIX m_matPos;
	D3DXMATRIX m_matTex;
	int nAngle;
};



//////////////////////////////////////////////////////////////////////////
class VKSprite3 : public VKObject
{
public:
	VKSprite3();
	virtual ~VKSprite3(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);

	void SetPos(D3DXVECTOR3 vecPos , D3DXVECTOR2 vecSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;
	LPDIRECT3DTEXTURE9 m_pAlphaTex;


	LPDIRECT3DVERTEXDECLARATION9 m_ppDecl;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DVERTEXBUFFER9 m_pTBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;
	DWORD dwVertexType2;

	D3DXMATRIX m_matPos;
	D3DXMATRIX m_matTex;
	float fAngle;

};



//////////////////////////////////////////////////////////////////////////
class VKSprite4 : public VKObject
{
public:
	VKSprite4();
	virtual ~VKSprite4(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;

};



//////////////////////////////////////////////////////////////////////////
class VKSprite5 : public VKObject
{
public:
	VKSprite5();
	virtual ~VKSprite5(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);

	void SetPos(D3DXVECTOR3 vecPos , D3DXVECTOR2 vecSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;
	LPDIRECT3DTEXTURE9 m_pAlphaTex;


	LPDIRECT3DVERTEXDECLARATION9 m_ppDecl;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DVERTEXBUFFER9 m_pTBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;
	DWORD dwVertexType2;

	D3DXMATRIX m_matPos;
	D3DXMATRIX m_matTex;
	float fAngle;

};

//////////////////////////////////////////////////////////////////////////
class VKSprite6 : public VKObject
{
public:
	VKSprite6();
	virtual ~VKSprite6(void);

	virtual HRESULT Render();

	HRESULT Load(LPDIRECT3DDEVICE9 pDevice , const char* strFile , FRECT* pImageSize);

	void SetPos(D3DXVECTOR3 vecPos , D3DXVECTOR2 vecSize);


protected:

	LPDIRECT3DDEVICE9 m_pDevice;
	LPDIRECT3DTEXTURE9 m_pTexture;
	LPDIRECT3DTEXTURE9 m_pAlphaTex;


	LPDIRECT3DVERTEXDECLARATION9 m_ppDecl;

	LPDIRECT3DVERTEXBUFFER9 m_pVBuff;
	LPDIRECT3DVERTEXBUFFER9 m_pTBuff;
	LPDIRECT3DINDEXBUFFER9 m_pIBuff;

	float m_fx;
	float m_fy;
	float m_fWidth;
	float m_fHeight;
	DWORD dwVertexType;
	DWORD dwVertexType2;

	D3DXMATRIX m_matPos;
	D3DXMATRIX m_matTex;
	float fAngle;

};